var $_, $hxClasses = $hxClasses || {}, $estr = function() { return js.Boot.__string_rec(this,''); }
function $extend(from, fields) {
	function inherit() {}; inherit.prototype = from; var proto = new inherit();
	for (var name in fields) proto[name] = fields[name];
	return proto;
}
var IntIter = $hxClasses["IntIter"] = function(min,max) {
	this.min = min;
	this.max = max;
};
IntIter.__name__ = ["IntIter"];
IntIter.prototype = {
	min: null
	,max: null
	,hasNext: function() {
		return this.min < this.max;
	}
	,next: function() {
		return this.min++;
	}
	,__class__: IntIter
}
var Main = $hxClasses["Main"] = function() {
	this.batcher = new tools.batcher.Batcher(this,this.build.$bind(this));
	this.batcher.addItem(params.GlobalParams.BG_MAIN);
	this.batcher.addItem(params.GlobalParams.BG_WORKS);
	this.batcher.addItem(params.GlobalParams.BG_ABOUT);
	this.batcher.addItem(params.GlobalParams.BG_CONTACT);
	this.batcher.addItem(params.GlobalParams.BG_LINKS);
	this.batcher.start();
	this.safety = new haxe.Timer(25000);
	this.safety.run = this.build.$bind(this);
};
Main.__name__ = ["Main"];
Main.loader = null;
Main.main = function() {
	Main.loader = new $("#mainLoader");
}
Main.start = function() {
	var browserTest = UserAgent.navigator.appVersion;
	if(browserTest.charAt(0) != "5" && !js.Lib.isOpera) {
		Main.loader.css("width","500px");
		Main.loader.css("background-image","none");
		Main.loader.append("I'm sorry but HTML5 is not supported by your browser.<br/>You should upgrade.");
		return;
	}
	new Main();
}
Main.prototype = {
	bg: null
	,header: null
	,content: null
	,footer: null
	,batcher: null
	,safety: null
	,build: function() {
		var me = this;
		this.safety.stop();
		this.safety = null;
		this.batcher.killed = true;
		this.header = new ui.Header();
		this.content = new content.ContentManager();
		this.footer = new ui.Footer();
		this.bg = new ui.Background();
		js.Lib.window.onresize = function(e) {
			me.onResize();
		};
		this.onResize();
		this.bg.display();
		this.header.display();
		this.footer.display();
		Main.loader.css("display","none");
		Main.loader = null;
	}
	,onResize: function() {
		tools.BoundProvider.getBounds();
		var w = tools.BoundProvider.winW;
		var h = tools.BoundProvider.winH;
		this.bg.resize(w,h,tools.BoundProvider.bgW,tools.BoundProvider.bgH,tools.BoundProvider.bgX,tools.BoundProvider.bgY);
		this.header.resize(h);
		this.footer.resize(w,h);
		this.content.resize(w,h);
	}
	,__class__: Main
}
var Reflect = $hxClasses["Reflect"] = function() { }
Reflect.__name__ = ["Reflect"];
Reflect.hasField = function(o,field) {
	return ($_=Object.prototype,$_.hasOwnProperty.$bind($_)).call(o,field);
}
Reflect.field = function(o,field) {
	var v = null;
	try {
		v = o[field];
	} catch( e ) {
	}
	return v;
}
Reflect.setField = function(o,field,value) {
	o[field] = value;
}
Reflect.getProperty = function(o,field) {
	var tmp;
	return o == null?null:o.__properties__ && (tmp = o.__properties__["get_" + field])?o[tmp]():o[field];
}
Reflect.setProperty = function(o,field,value) {
	var tmp;
	if(o.__properties__ && (tmp = o.__properties__["set_" + field])) o[tmp](value); else o[field] = value;
}
Reflect.callMethod = function(o,func,args) {
	return func.apply(o,args);
}
Reflect.fields = function(o) {
	var a = [];
	if(o != null) {
		var hasOwnProperty = ($_=Object.prototype,$_.hasOwnProperty.$bind($_));
		for( var f in o ) {
		if(hasOwnProperty.call(o,f)) a.push(f);
		}
	}
	return a;
}
Reflect.isFunction = function(f) {
	return typeof(f) == "function" && f.__name__ == null;
}
Reflect.compare = function(a,b) {
	return a == b?0:a > b?1:-1;
}
Reflect.compareMethods = function(f1,f2) {
	if(f1 == f2) return true;
	if(!Reflect.isFunction(f1) || !Reflect.isFunction(f2)) return false;
	return f1.scope == f2.scope && f1.method == f2.method && f1.method != null;
}
Reflect.isObject = function(v) {
	if(v == null) return false;
	var t = typeof(v);
	return t == "string" || t == "object" && !v.__enum__ || t == "function" && v.__name__ != null;
}
Reflect.deleteField = function(o,f) {
	if(!Reflect.hasField(o,f)) return false;
	delete(o[f]);
	return true;
}
Reflect.copy = function(o) {
	var o2 = { };
	var _g = 0, _g1 = Reflect.fields(o);
	while(_g < _g1.length) {
		var f = _g1[_g];
		++_g;
		o2[f] = Reflect.field(o,f);
	}
	return o2;
}
Reflect.makeVarArgs = function(f) {
	return function() {
		var a = Array.prototype.slice.call(arguments);
		return f(a);
	};
}
Reflect.prototype = {
	__class__: Reflect
}
var Std = $hxClasses["Std"] = function() { }
Std.__name__ = ["Std"];
Std["is"] = function(v,t) {
	return js.Boot.__instanceof(v,t);
}
Std.string = function(s) {
	return js.Boot.__string_rec(s,"");
}
Std["int"] = function(x) {
	return x | 0;
}
Std.parseInt = function(x) {
	var v = parseInt(x,10);
	if(v == 0 && x.charCodeAt(1) == 120) v = parseInt(x);
	if(isNaN(v)) return null;
	return v;
}
Std.parseFloat = function(x) {
	return parseFloat(x);
}
Std.random = function(x) {
	return Math.floor(Math.random() * x);
}
Std.prototype = {
	__class__: Std
}
var UserAgent = $hxClasses["UserAgent"] = function() { }
UserAgent.__name__ = ["UserAgent"];
UserAgent.getContext = function() {
	return window;
}
UserAgent.prototype = {
	__class__: UserAgent
}
var content = content || {}
content.ContentManager = $hxClasses["content.ContentManager"] = function() {
	this._currentStep = 0;
	this._vHome = new content.views.Home("home","tpl/home.html");
	this._vWorks = new content.views.Works("works");
	this._vAbout = new content.views.About("about","tpl/about.html");
	this._vContact = new content.views.Contact("contact","tpl/contact.html");
	this._vLinks = new content.views.Links("links","tpl/links.html");
	this._currentStep = -1;
	this._firstLoad = true;
	this._oldView = this._currentView = this._vHome;
	net.address.Address.init(this,this._loadPage.$bind(this));
};
content.ContentManager.__name__ = ["content","ContentManager"];
content.ContentManager.isMoving = null;
content.ContentManager.prototype = {
	_vHome: null
	,_vWorks: null
	,_vAbout: null
	,_vContact: null
	,_vLinks: null
	,_currentView: null
	,_oldView: null
	,_loadPage: function(hash) {
		if(this._currentView != null) this._currentView.hide();
		content.ContentManager.isMoving = true;
		var step = 0;
		switch(hash) {
		case "":
			break;
		case params.GlobalParams.ID_MAIN:
			this._currentView = this._vHome;
			break;
		case params.GlobalParams.ID_WORKS:
			step = 1;
			this._currentView = this._vWorks;
			break;
		case params.GlobalParams.ID_ABOUT:
			step = 2;
			this._currentView = this._vAbout;
			break;
		case params.GlobalParams.ID_CONTACT:
			step = 3;
			this._currentView = this._vContact;
			break;
		case params.GlobalParams.ID_LINKS:
			step = 4;
			this._currentView = this._vLinks;
			break;
		}
		if(step == this._currentStep) return;
		this._currentView.setAlpha(0);
		this._currentView.show();
		this._currentView.resize(this._currentWidth,this._currentHeight);
		if(step > this._currentStep) {
			this._currentView.setHeight(0);
			this._currentView.tween(0,($_=this._currentView,$_.setHeight.$bind($_)),this._currentHeight,750,feffects.easing.Quad.easeIn,this._end.$bind(this));
			this._currentView.setAlpha(1);
			this._oldView.dom.css("z-index","1");
			this._currentView.dom.css("z-index","2");
		} else {
			this._oldView.tween(this._currentHeight,($_=this._oldView,$_.setHeight.$bind($_)),0,1500,feffects.easing.Expo.easeOut,this._end.$bind(this));
			this._currentView.setAlpha(1);
		}
		this._currentStep = step;
	}
	,_end: function() {
		if(this._firstLoad == false) this._oldView.removeChild(); else this._firstLoad = false;
		this._oldView = this._currentView;
		this._currentView.play();
		content.ContentManager.isMoving = false;
	}
	,resize: function(_w,_h) {
		this._currentWidth = _w;
		this._currentHeight = _h;
		if(this._currentView == null) return;
		this._currentView.resize(this._currentWidth,this._currentHeight);
	}
	,_currentStep: null
	,_currentWidth: null
	,_currentHeight: null
	,_firstLoad: null
	,__class__: content.ContentManager
}
var tools = tools || {}
tools.ASprite = $hxClasses["tools.ASprite"] = function(pDom,id) {
	if(id == null) id = "";
	this.domID = id;
	this.dom = pDom;
};
tools.ASprite.__name__ = ["tools","ASprite"];
tools.ASprite.prototype = {
	dom: null
	,domID: null
	,_height: null
	,_width: null
	,_x: null
	,_y: null
	,_alpha: null
	,_tween: null
	,getHeight: function() {
		return this._height;
	}
	,setHeight: function(value) {
		this._height = value;
		this.dom.css("height",value + "px");
	}
	,getWidth: function() {
		return this._width;
	}
	,setWidth: function(value) {
		this._width = value;
		this.dom.css("width",value + "px");
	}
	,getX: function() {
		return this._x;
	}
	,setX: function(value) {
		this._x = value;
		this.dom.css("left",value + "px");
	}
	,getY: function() {
		return this._y;
	}
	,setY: function(value) {
		this._y = value;
		this.dom.css("top",value + "px");
	}
	,getAlpha: function() {
		return this._alpha;
	}
	,setAlpha: function(value) {
		this._alpha = value;
		this.dom.css("opacity",this._alpha);
	}
	,visible: function(value) {
		if(value) this.dom.css("display","block"); else this.dom.css("display","none");
	}
	,tween: function(init,prop,value,time,ease,callBack,delay) {
		if(delay == null) delay = 0;
		if(this._tween != null) this._tween.stop();
		this._tween = new feffects.Tween(init,value,time,null,null,ease);
		this._tween.setTweenHandlers(prop,callBack);
		haxe.Timer.delay(($_=this._tween,$_.start.$bind($_)),delay);
	}
	,tweens: function(props,duration,ease,callBack,delay) {
		if(delay == null) delay = 0;
		var i = 0;
		var tween;
		while(i < props.length) {
			this._tween = new feffects.Tween(props[i].init,props[i].value,duration,null,null,ease);
			if(i == props.length - 1) this._tween.setTweenHandlers(props[i].prop,callBack); else this._tween.setTweenHandlers(props[i].prop);
			haxe.Timer.delay(($_=this._tween,$_.start.$bind($_)),delay);
			i++;
		}
	}
	,__class__: tools.ASprite
}
if(!content.views) content.views = {}
content.views.BaseView = $hxClasses["content.views.BaseView"] = function(_id,_tpl) {
	if(_tpl == null) _tpl = "";
	this.view = js.Lib.document.getElementById(_id);
	this.dom = new $("#" + _id);
	this.rootID = _id;
	tools.ASprite.call(this,this.dom,_id);
	this.id = "container_" + _id;
	this.tpl = _tpl;
	this.dom.append("<div id=\"" + this.id + "\"></div>");
	this.container = new $("#" + this.id);
	this.container.css("background-image","url(img/elements/u_mad_bro.gif)");
	this.removeChild();
	if(_tpl == "") {
		this.build();
		return;
	}
	this.container.load(this.tpl,this._onLoaded.$bind(this));
};
content.views.BaseView.__name__ = ["content","views","BaseView"];
content.views.BaseView.__super__ = tools.ASprite;
content.views.BaseView.prototype = $extend(tools.ASprite.prototype,{
	view: null
	,container: null
	,id: null
	,rootID: null
	,tpl: null
	,html: null
	,_onLoaded: function(response,status,xhr) {
		if(status == "error") js.Lib.alert("ERROR"); else {
			this.html = response;
			this.build();
		}
	}
	,build: function() {
	}
	,show: function() {
		this.dom.css("display","block");
		this.dom.css("z-index","1");
	}
	,play: function() {
		this.resize(tools.BoundProvider.winW,tools.BoundProvider.winH);
	}
	,hide: function() {
	}
	,removeChild: function() {
		this.dom.css("display","none");
		this.dom.css("z-index","1");
	}
	,resize: function(_w,_h) {
		this.container.css("width",_w + "px");
		this.container.css("height",_h + "px");
		this.setHeight(_h);
		this.setWidth(_w);
		this.dom.css("background-position",tools.BoundProvider.bgX + "px " + tools.BoundProvider.bgY + "px");
		this.dom.css("background-size",tools.BoundProvider.bgW + "px " + tools.BoundProvider.bgH + "px");
	}
	,__class__: content.views.BaseView
});
content.views.About = $hxClasses["content.views.About"] = function(id,tpl) {
	content.views.BaseView.call(this,id,tpl);
	this.dom.css("background-image","url(" + params.GlobalParams.BG_ABOUT + ")");
};
content.views.About.__name__ = ["content","views","About"];
content.views.About.__super__ = content.views.BaseView;
content.views.About.prototype = $extend(content.views.BaseView.prototype,{
	_container: null
	,_title: null
	,_about: null
	,_desc: null
	,_parts: null
	,_isaacPic: null
	,build: function() {
		this._container = new tools.ASprite(new $("#containerAbout"));
		this._container.setX(356);
		this._parts = new tools.ASprite(new $(".part"));
		this._parts.setAlpha(0);
		this._desc = new tools.ASprite(new $("#desc"));
		this._desc.setHeight(0);
		this._isaacPic = new tools.ASprite(new $("#isaac img"));
		this._isaacPic.setAlpha(0);
		this._title = new tools.ASprite(new $("#aboutTitle"));
		this._title.setAlpha(0);
	}
	,play: function() {
		content.views.BaseView.prototype.play.call(this);
		this._parts.tween(0,($_=this._parts,$_.setAlpha.$bind($_)),1,600,feffects.easing.Quad.easeInOut,null,450);
		this._desc.tween(0,($_=this._desc,$_.setHeight.$bind($_)),500,600,feffects.easing.Quad.easeInOut);
		this._isaacPic.tween(0,($_=this._isaacPic,$_.setAlpha.$bind($_)),1,800,feffects.easing.Quad.easeInOut,null,800);
		this._title.tween(0,($_=this._title,$_.setAlpha.$bind($_)),1,400,feffects.easing.Quad.easeInOut);
	}
	,hide: function() {
		this._parts.tween(1,($_=this._parts,$_.setAlpha.$bind($_)),0,200,feffects.easing.Quad.easeInOut);
		this._desc.tween(500,($_=this._desc,$_.setHeight.$bind($_)),0,500,feffects.easing.Quad.easeOut,null,150);
		this._isaacPic.tween(this._isaacPic.getAlpha(),($_=this._isaacPic,$_.setAlpha.$bind($_)),0,200,feffects.easing.Quad.easeInOut);
		this._title.tween(this._title.getAlpha(),($_=this._title,$_.setAlpha.$bind($_)),0,400,feffects.easing.Quad.easeInOut);
	}
	,resize: function(_w,_h) {
		content.views.BaseView.prototype.resize.call(this,_w,_h);
		if(this._container == null || this._title == null) return;
		this._container.setY(145);
		var _currentX;
		if(_w < 1100) _currentX = Math.max((_w + 216 - 720) * .5,216); else _currentX = 356;
		this._container.setX(_currentX);
		this._title.setX(_currentX);
		this._title.setY(95);
	}
	,__class__: content.views.About
});
content.views.Contact = $hxClasses["content.views.Contact"] = function(id,tpl) {
	content.views.BaseView.call(this,id,tpl);
	this.dom.css("background-image","url(" + params.GlobalParams.BG_CONTACT + ")");
	this._itemz = new Array();
};
content.views.Contact.__name__ = ["content","views","Contact"];
content.views.Contact.__super__ = content.views.BaseView;
content.views.Contact.prototype = $extend(content.views.BaseView.prototype,{
	_contactContainer: null
	,_title: null
	,_itemz: null
	,_mail: null
	,_twitter: null
	,_linkedin: null
	,build: function() {
		this._contactContainer = new tools.ASprite(new $("#contact #container"));
		this._title = new tools.ASprite(new $("#contactTitle"));
		this._title.setAlpha(0);
		this._mail = new content.views.contact.ContactItem(new $("#mail"),"mail");
		this._twitter = new content.views.contact.ContactItem(new $("#twitter"),"twitter");
		this._linkedin = new content.views.contact.ContactItem(new $("#linkedin"),"linkedin");
	}
	,play: function() {
		content.views.BaseView.prototype.play.call(this);
		this._mail.setAlpha(0);
		this._twitter.setAlpha(0);
		this._linkedin.setAlpha(0);
		this._title.tween(0,($_=this._title,$_.setAlpha.$bind($_)),1,600,feffects.easing.Quad.easeInOut,null,200);
		this._mail.display();
		this._twitter.display(100);
		this._linkedin.display(200);
	}
	,hide: function() {
		this._title.tween(this._title.getAlpha(),($_=this._title,$_.setAlpha.$bind($_)),0,300,feffects.easing.Quad.easeOut);
		this._mail.hide(300);
		this._twitter.hide(150);
		this._linkedin.hide();
	}
	,resize: function(_w,_h) {
		if(this._title == null) return;
		content.views.BaseView.prototype.resize.call(this,_w,_h);
		var _x = 216;
		var _y = 145;
		this._title.setX(_x);
		this._title.setY(_y - 50);
		this._contactContainer.setX(_x);
		this._contactContainer.setY(_y);
		this._mail.resize();
		this._twitter.resize();
		this._linkedin.resize();
	}
	,__class__: content.views.Contact
});
content.views.Home = $hxClasses["content.views.Home"] = function(id,tpl) {
	content.views.BaseView.call(this,id,tpl);
};
content.views.Home.__name__ = ["content","views","Home"];
content.views.Home.__super__ = content.views.BaseView;
content.views.Home.prototype = $extend(content.views.BaseView.prototype,{
	_layerTop: null
	,_layerLow: null
	,_timer: null
	,build: function() {
		this._layerTop = new tools.ASprite(new $("#layertop"));
		this._layerTop.dom.css("position","absolute");
		this._layerTop.setAlpha(0);
		this._layerLow = new tools.ASprite(new $("#layerlow"));
		this._layerLow.dom.css("position","absolute");
		this._layerLow.setAlpha(0);
	}
	,play: function() {
		var me = this;
		content.views.BaseView.prototype.play.call(this);
		this._layerTop.tween(0,($_=this._layerTop,$_.setAlpha.$bind($_)),1,400,feffects.easing.Quad.easeOut);
		this._layerLow.tween(0,($_=this._layerLow,$_.setAlpha.$bind($_)),1,400,feffects.easing.Quad.easeOut,null,150);
		if(this._timer != null) {
			this._timer.stop();
			this._timer = null;
		}
		this.dom.mousemove(function(e) {
			me.checkMousePos(e);
		});
		this._smoothMouseX = 0;
		this._timer = new haxe.Timer(25);
		this._timer.run = this._onMove.$bind(this);
	}
	,_smoothMouseX: null
	,_smoothMouseY: null
	,_mouseX: null
	,_mouseY: null
	,_initX: null
	,_initY: null
	,_onMove: function() {
		this._smoothMouseX += (this._mouseX - this._smoothMouseX) * .3;
		this._smoothMouseY += (this._mouseY - this._smoothMouseY) * .3;
		this._layerLow.setX(this._initX - this._smoothMouseX / (tools.BoundProvider.winW / 23));
		this._layerLow.setY(this._initY - this._smoothMouseY / (tools.BoundProvider.winH / 16));
	}
	,checkMousePos: function(e) {
		this._mouseX = -128 + e.pageX - tools.BoundProvider.winW * .5;
		this._mouseY = e.pageY - tools.BoundProvider.winH * .5;
	}
	,hide: function() {
		if(this._layerTop != null) this._layerTop.tween(1,($_=this._layerTop,$_.setAlpha.$bind($_)),0,300,feffects.easing.Quad.easeOut,null,150);
		if(this._layerLow != null) this._layerLow.tween(1,($_=this._layerLow,$_.setAlpha.$bind($_)),0,300,feffects.easing.Quad.easeOut);
		this.dom.mousemove(null);
		if(this._timer != null) {
			this._timer.stop();
			this._timer = null;
		}
	}
	,resize: function(_w,_h) {
		content.views.BaseView.prototype.resize.call(this,_w,_h);
		if(this._layerTop == null) return;
		this._initX = 356;
		this._initY = 100;
		this._layerTop.setX(this._initX);
		this._layerTop.setY(this._initY);
		this._layerLow.setX(this._initX);
		this._layerLow.setY(this._initY);
	}
	,__class__: content.views.Home
});
content.views.Links = $hxClasses["content.views.Links"] = function(id,tpl) {
	content.views.BaseView.call(this,id,tpl);
	this.dom.css("background-image","url(" + params.GlobalParams.BG_LINKS + ")");
	this._ul = new Array();
	this._links = new Array();
};
content.views.Links.__name__ = ["content","views","Links"];
content.views.Links.__super__ = content.views.BaseView;
content.views.Links.prototype = $extend(content.views.BaseView.prototype,{
	_links: null
	,_data: null
	,_container: null
	,_title: null
	,_ul: null
	,_currentX: null
	,_currentY: null
	,build: function() {
		this._container = new tools.ASprite(new $("#linksContainer"));
		this._title = new tools.ASprite(new $("#linksTitle"));
		this._title.setAlpha(0);
		$.getJSON("data/links.json",this._onLinksLoaded.$bind(this));
	}
	,_onLinksLoaded: function(obj) {
		this._data = obj;
		var i = 0;
		while(i < 200) {
			if(this._data.links.link[i] != null) this._links.push(this._data.links.link[i]); else break;
			i++;
		}
		i = 0;
		var nbBlocs = Math.ceil(this._links.length / 8);
		var flag = false;
		while(i < nbBlocs) {
			var j = i + 1;
			this._container.dom.append("<ul id=\"col" + j + "\"></ul>");
			this._ul[i] = new content.views.links.BlocLinks(new $("#col" + j));
			this._ul[i].setAlpha(0);
			flag = !flag;
			if(flag) this._ul[i].currentY = 100; else this._ul[i].currentY = -100;
			i++;
		}
		this._container.setWidth(160 * nbBlocs);
		this._container.setHeight(150);
		i = 0;
		while(i < this._links.length) {
			var str = "<li><a href=\"" + this._links[i].url + "\" target=\"_blank\">" + this._links[i].label + "</a></li>";
			this._ul[Math.floor(i / 8)].dom.append(str);
			i++;
		}
	}
	,play: function() {
		content.views.BaseView.prototype.play.call(this);
		this._title.tween(0,($_=this._title,$_.setAlpha.$bind($_)),1,800,feffects.easing.Quad.easeOut,null,500);
		var i = 0;
		while(i < this._ul.length) {
			this._ul[i].tweens([{ prop : ($_=this._ul[i],$_.setY.$bind($_)), init : this._ul[i].currentY, value : 0},{ prop : ($_=this._ul[i],$_.setAlpha.$bind($_)), init : 0, value : 1}],500,feffects.easing.Quad.easeInOut,null,i * 150);
			i++;
		}
	}
	,hide: function() {
		var i = 0;
		while(i < this._ul.length) {
			this._ul[i].tween(1,($_=this._ul[i],$_.setAlpha.$bind($_)),0,400,feffects.easing.Quad.easeOut,null,i * 150);
			i++;
		}
		this._title.tween(1,($_=this._title,$_.setAlpha.$bind($_)),0,600,feffects.easing.Quad.easeOut);
	}
	,resize: function(_w,_h) {
		content.views.BaseView.prototype.resize.call(this,_w,_h);
		if(this._container == null) return;
		if(_w < 1100) this._currentX = (_w + 216 - this._container.getWidth()) * .5; else this._currentX = 356;
		this._currentY = 135;
		this._title.setX(Math.max(this._currentX,216));
		this._title.setY(Math.max(this._currentY - 40,0));
		this._container.setX(Math.max(this._currentX,216));
		this._container.setY(Math.max(this._currentY,0));
	}
	,__class__: content.views.Links
});
content.views.Works = $hxClasses["content.views.Works"] = function(id) {
	content.views.BaseView.call(this,id);
	this.dom.css("background-image","url(" + params.GlobalParams.BG_WORKS + ")");
	this._works = new Array();
};
content.views.Works.__name__ = ["content","views","Works"];
content.views.Works.__super__ = content.views.BaseView;
content.views.Works.prototype = $extend(content.views.BaseView.prototype,{
	_nav: null
	,_screen: null
	,_data: null
	,_works: null
	,_currentID: null
	,build: function() {
		this.html = "<div id=\"colProdz\"></div><div id=\"prodz\"></div>";
		this.container.append(this.html);
		this._nav = new content.views.works.NavWorks(new $("#colProdz"));
		this._screen = new content.views.works.ScreenWorks(new $("#prodz"));
		this._nav.setWidth(0);
		$.getJSON("data/works.json",this._onLinksLoaded.$bind(this));
	}
	,_onLinksLoaded: function(obj) {
		this._data = obj;
		var i = 0;
		while(i < 200) {
			if(this._data.works.work[i] != null) this._works.push(this._data.works.work[i]); else break;
			i++;
		}
		this._configure();
	}
	,_configure: function() {
		var me = this;
		this._nav.build(this._works);
		this._nav.dom.click(function(e) {
			me._onClick(e);
		});
	}
	,_onClick: function(e) {
		if(e.target.id == this._currentID) return;
		this._currentID = e.target.id;
		this._nav.handleSelect(this._currentID);
		this._screen.switchContent(this._works[this._currentID]);
	}
	,play: function() {
		content.views.BaseView.prototype.play.call(this);
		this._nav.display();
		this._screen.display();
	}
	,hide: function() {
		this._nav.hide();
		this._screen.hide();
	}
	,resize: function(_w,_h) {
		content.views.BaseView.prototype.resize.call(this,_w,_h);
		this._nav.resize(_w,_h);
		this._screen.resize(_w - 216 - 100,_h);
	}
	,__class__: content.views.Works
});
if(!content.views.contact) content.views.contact = {}
content.views.contact.ContactItem = $hxClasses["content.views.contact.ContactItem"] = function(jq,pId) {
	tools.ASprite.call(this,jq,pId);
	this._lbl = new tools.ASprite(new $("#" + pId + " .title"));
	this._lbl.setAlpha(0);
	this._lbl.setHeight(40);
	this._content = new tools.ASprite(new $("#" + pId + " .content"));
	this._content.setAlpha(0);
	this.dom.css("position","relative");
	this.setAlpha(0);
	this.setHeight(1);
	this.setWidth(1);
};
content.views.contact.ContactItem.__name__ = ["content","views","contact","ContactItem"];
content.views.contact.ContactItem.__super__ = tools.ASprite;
content.views.contact.ContactItem.prototype = $extend(tools.ASprite.prototype,{
	_delay: null
	,_lbl: null
	,_content: null
	,_ready: null
	,display: function(delay,initY) {
		if(initY == null) initY = 0;
		if(delay == null) delay = 0;
		this.setAlpha(0);
		this._lbl.setAlpha(0);
		this.setHeight(1);
		this.setWidth(1);
		this.setAlpha(1);
		this._delay = delay;
		this.tween(1,this.setWidth.$bind(this),tools.BoundProvider.winW - 216,400,feffects.easing.Quad.easeInOut,this.next.$bind(this),this._delay);
	}
	,next: function() {
		this.tween(1,this.setHeight.$bind(this),50,400,feffects.easing.Quad.easeInOut,null,this._delay);
		this._lbl.tween(0,($_=this._lbl,$_.setAlpha.$bind($_)),1,350,feffects.easing.Quad.easeIn,this._active.$bind(this),this._delay + 400);
	}
	,_active: function() {
		var me = this;
		this._lbl.dom.mouseover(function(e) {
			me._onOver(e);
		});
		this._lbl.dom.mouseout(function(e) {
			me._onOut(e);
		});
		this._ready = true;
	}
	,hide: function(delay) {
		if(delay == null) delay = 0;
		this._ready = false;
		this._lbl.tween(1,($_=this._lbl,$_.setAlpha.$bind($_)),0,150,feffects.easing.Quad.easeIn,null,delay);
		this.tween(this.getAlpha(),this.setAlpha.$bind(this),0,200,feffects.easing.Quad.easeInOut,null,delay);
		this._content.setAlpha(0);
	}
	,_onOver: function(e) {
		this.tween(50,this.setHeight.$bind(this),90,300,feffects.easing.Quad.easeInOut);
		this._lbl.tween(this._lbl.getHeight(),($_=this._lbl,$_.setHeight.$bind($_)),80,300,feffects.easing.Quad.easeInOut);
		this._content.tween(this._content.getAlpha(),($_=this._content,$_.setAlpha.$bind($_)),1,300,feffects.easing.Quad.easeInOut);
	}
	,_onOut: function(e) {
		this.tween(this.getHeight(),this.setHeight.$bind(this),50,300,feffects.easing.Quad.easeInOut);
		this._lbl.tween(this._lbl.getHeight(),($_=this._lbl,$_.setHeight.$bind($_)),40,300,feffects.easing.Quad.easeInOut);
		this._content.tween(this._content.getAlpha(),($_=this._content,$_.setAlpha.$bind($_)),0,300,feffects.easing.Quad.easeOut);
	}
	,resize: function() {
		if(!this._ready) return;
		this.tween(this.getWidth(),this.setWidth.$bind(this),tools.BoundProvider.winW - 216,400,feffects.easing.Quad.easeOut);
	}
	,__class__: content.views.contact.ContactItem
});
if(!content.views.links) content.views.links = {}
content.views.links.BlocLinks = $hxClasses["content.views.links.BlocLinks"] = function(jq) {
	tools.ASprite.call(this,jq);
};
content.views.links.BlocLinks.__name__ = ["content","views","links","BlocLinks"];
content.views.links.BlocLinks.__super__ = tools.ASprite;
content.views.links.BlocLinks.prototype = $extend(tools.ASprite.prototype,{
	currentY: null
	,__class__: content.views.links.BlocLinks
});
if(!content.views.works) content.views.works = {}
content.views.works.CloseButton = $hxClasses["content.views.works.CloseButton"] = function(jQuery) {
	var me = this;
	tools.ASprite.call(this,jQuery);
	this.dom.mouseover(function(e) {
		me.onOver(e);
	});
	this.dom.mouseout(function(e) {
		me.onOut(e);
	});
};
content.views.works.CloseButton.__name__ = ["content","views","works","CloseButton"];
content.views.works.CloseButton.__super__ = tools.ASprite;
content.views.works.CloseButton.prototype = $extend(tools.ASprite.prototype,{
	onOver: function(e) {
		this.tween(1,this.setAlpha.$bind(this),.75,300,feffects.easing.Quad.easeInOut);
	}
	,onOut: function(e) {
		this.tween(this.getAlpha(),this.setAlpha.$bind(this),1,300,feffects.easing.Quad.easeInOut);
	}
	,__class__: content.views.works.CloseButton
});
content.views.works.DemoPlayer = $hxClasses["content.views.works.DemoPlayer"] = function(jq) {
	var me = this;
	tools.ASprite.call(this,jq);
	this.setAlpha(0);
	var html = "<div id=\"playerContainer\"></div><div id=\"closeButton\"><img src=\"img/elements/close_button.png\"/></div>";
	this.dom.append(html);
	this._playerContainer = new tools.ASprite(new $("#playerContainer"));
	this._closeBt = new content.views.works.CloseButton(new $("#closeButton"));
	this._closeBt.dom.mousedown(function(e) {
		me._close(e);
	});
};
content.views.works.DemoPlayer.__name__ = ["content","views","works","DemoPlayer"];
content.views.works.DemoPlayer.__super__ = tools.ASprite;
content.views.works.DemoPlayer.prototype = $extend(tools.ASprite.prototype,{
	isOpen: null
	,_player: null
	,_playerContainer: null
	,_closeBt: null
	,buildAndPlay: function(pSrc,pWidth,pHeight) {
		if(pHeight == null) pHeight = 360;
		if(pWidth == null) pWidth = 640;
		this._playerContainer.dom.empty();
		if(this._player != null) this._player = null;
		var html = "<video id=\"videoElement\" class=\"video-js vjs-default-skin\" controls width=\"" + pWidth + "\" height=\"" + pHeight + "\" preload=\"auto\" data-setup=\"{}\">\r\n\t\t\t\t\t\t\t\t<source type=\"video/mp4\" src=\"demo/" + pSrc + ".mp4\">\r\n\t\t\t\t\t\t\t\t<source type=\"video/ogg\" src=\"demo/" + pSrc + ".ogg\">\r\n\t\t\t\t\t\t\t</video>";
		this._playerContainer.dom.append(html);
		this._player = new tools.ASprite(new $("#videoElement"));
		this.resize(tools.BoundProvider.winW - 316,tools.BoundProvider.winH);
		this._display();
	}
	,_display: function() {
		this.visible(true);
		this.isOpen = true;
		this.tween(0,this.setAlpha.$bind(this),1,500,feffects.easing.Quad.easeInOut);
	}
	,_close: function(e) {
		this.isOpen = false;
		this.hide();
	}
	,hide: function() {
		this.tween(1,this.setAlpha.$bind(this),0,200,feffects.easing.Quad.easeInOut,this._clear.$bind(this));
	}
	,_clear: function() {
		if(this._player == null) return;
		_V_("videoElement").addEvent("error",function(e) {
			return;
		});
		_V_("videoElement").pause();
		_V_("videoElement").hide();
		this.visible(false);
	}
	,resize: function(w,h) {
		this.setY(0);
		this.setX(316);
		this.setWidth(w);
		this.setHeight(h);
		if(this._player == null) return;
		var px;
		var py = (h - 360) * .5;
		if(w < 744) px = Math.max((w - 640) * .5,0); else px = Math.max(-316 + (w + 316 - 640) * .5,50);
		this._player.setX(px);
		this._player.setY(py);
		this._closeBt.setX(px + 640 - 37);
		this._closeBt.setY(py + 5);
	}
	,__class__: content.views.works.DemoPlayer
});
content.views.works.LayerWorks = $hxClasses["content.views.works.LayerWorks"] = function(dom) {
	tools.ASprite.call(this,dom);
	var html = "<div><div id=\"worklayer\"></div>";
	dom.append(html);
	this._container = new tools.ASprite(new $("#worklayer"));
	this._container.dom.css("padding","20px");
	var spans = "<span id=\"worktitle\"></span><span id=\"worksubtitle\"></span><span id=\"workcredits\"></span><span id=\"workdesc\"></span><span id=\"viewDemo\">VIEW DEMO</span><span id=\"viewSite\">VIEW SITE</span>";
	this._container.dom.append(spans);
	this._title = new $("#worktitle");
	this._subtitle = new $("#worksubtitle");
	this._desc = new $("#workdesc");
	this._credits = new $("#workcredits");
	this._vDemo = new tools.ASprite(new $("#viewDemo"));
	this._vSite = new tools.ASprite(new $("#viewSite"));
	this._title.addClass("worktextfield");
	this._subtitle.addClass("worktextfield");
	this._desc.addClass("worktextfield");
	this._credits.addClass("worktextfield");
	this._vDemo.dom.addClass("worktextfield bt");
	this._vSite.dom.addClass("worktextfield bt");
	this.setWidth(250);
	this.setHeight(150);
	this.setY(-150);
	this._container.setWidth(250);
	this._container.setHeight(0);
	this._container.setAlpha(0);
};
content.views.works.LayerWorks.__name__ = ["content","views","works","LayerWorks"];
content.views.works.LayerWorks.__super__ = tools.ASprite;
content.views.works.LayerWorks.prototype = $extend(tools.ASprite.prototype,{
	_container: null
	,_title: null
	,_subtitle: null
	,_desc: null
	,_credits: null
	,_vDemo: null
	,_vSite: null
	,_data: null
	,_urlSite: null
	,_regW: null
	,_regH: null
	,build: function(data) {
		this._data = data;
		this._urlSite = data.url;
		this._container.tween(this._container.getAlpha(),($_=this._container,$_.setAlpha.$bind($_)),.5,250,feffects.easing.Quad.easeIn);
		this.tween(this.getY(),this.setY.$bind(this),-150,300,feffects.easing.Quad.easeIn,this._reload.$bind(this));
	}
	,_reload: function() {
		this._container.setAlpha(0);
		this._container.setHeight(0);
		this.setY(100);
		this._title.empty();
		this._subtitle.empty();
		this._desc.empty();
		this._credits.empty();
		if(this._data.demo != "") this._vDemo.visible(true); else this._vDemo.visible(false);
		if(this._data.url != "") {
			this._vSite.setAlpha(0);
			this._vSite.visible(true);
			this._vSite.dom.empty();
			this._vSite.dom.append("<a href=\"" + this._urlSite + "\" target=\"_blank\">VIEW SITE</a>");
			this._vSite.tween(0,($_=this._vSite,$_.setAlpha.$bind($_)),1,300,feffects.easing.Quad.easeInOut,null,400);
		} else this._vSite.visible(false);
		this._title.append(this._data.title);
		this._subtitle.append(this._data.subtitle);
		this._desc.append(this._data.desc);
		this._credits.append(this._data.credits);
		this.tweens([{ prop : ($_=this._container,$_.setHeight.$bind($_)), init : this._container.getHeight(), value : 150},{ prop : ($_=this._container,$_.setAlpha.$bind($_)), init : this._container.getAlpha(), value : 1}],500,feffects.easing.Quad.easeInOut);
	}
	,demoButton: function() {
		return this._vDemo.dom;
	}
	,__class__: content.views.works.LayerWorks
});
content.views.works.MiniNav = $hxClasses["content.views.works.MiniNav"] = function(jq,layer,_cb) {
	var me = this;
	tools.ASprite.call(this,jq);
	this._unActiveScreenShots = _cb;
	this._layer = layer;
	var html = "\t<span id=\"btTop\" \tclass=\"miniNavItem\">1</span>\r\n\t\t\t\t\t\t\t\t<span id=\"btMid\" \tclass=\"miniNavItem\">2</span>\r\n\t\t\t\t\t\t\t\t<span id=\"btBottom\" class=\"miniNavItem\">3</span>";
	this.dom.append(html);
	this._top = new content.views.works.MiniNavItem(new $("#btTop"),"btTop");
	this._mid = new content.views.works.MiniNavItem(new $("#btMid"),"btMid");
	this._bottom = new content.views.works.MiniNavItem(new $("#btBottom"),"btBottom");
	this.dom.mousedown(function(e) {
		me._update(e);
	});
	this._current = this._top;
	this._current.select();
	if(window.addEventListener) window.addEventListener("DOMMouseScroll",this._wheel.$bind(this),false);
	if(window.addEventListener) window.addEventListener("mousewheel",this._wheel.$bind(this),false);
	if(js.Lib.isIE || js.Lib.isOpera) window.onmousewheel = document.onmousewheel = this._wheel.$bind(this);
	this.setAlpha(0);
};
content.views.works.MiniNav.__name__ = ["content","views","works","MiniNav"];
content.views.works.MiniNav.__super__ = tools.ASprite;
content.views.works.MiniNav.prototype = $extend(tools.ASprite.prototype,{
	midY: null
	,endY: null
	,_top: null
	,_mid: null
	,_bottom: null
	,_current: null
	,_layer: null
	,_isDown: null
	,_isTweening: null
	,_wheelActive: null
	,_unActiveScreenShots: null
	,display: function() {
		this.tween(0,this.setAlpha.$bind(this),1,600,feffects.easing.Quad.easeInOut,null,100);
		this._wheelActive = true;
	}
	,hide: function() {
		this.tween(1,this.setAlpha.$bind(this),0,500,feffects.easing.Quad.easeInOut);
		this._wheelActive = false;
	}
	,_update: function(e) {
		if(e.target.id == this._current.domID || this._isTweening) return;
		this._isTweening = true;
		this._current.unselect();
		var value = 0;
		switch(e.target.id) {
		case "btTop":
			this._isDown = false;
			this._current = this._top;
			break;
		case "btMid":
			this._isDown = true;
			this._current = this._mid;
			value = this.midY;
			break;
		case "btBottom":
			this._isDown = true;
			this._current = this._bottom;
			value = this.endY;
			break;
		}
		this._move(value);
	}
	,_move: function(value) {
		this.tween(this._layer.getY(),($_=this._layer,$_.setY.$bind($_)),value,600,feffects.easing.Quad.easeInOut,this._clear.$bind(this));
		this._current.select();
	}
	,_clear: function() {
		this._isTweening = false;
	}
	,reInit: function() {
		if(!this._isDown) return;
		this._isDown = false;
		this._isTweening = false;
		this._current.unselect();
		this._current = this._top;
		this.tween(this._layer.getY(),($_=this._layer,$_.setY.$bind($_)),0,600,feffects.easing.Quad.easeInOut,this._clear.$bind(this));
		this._current.select();
		if(this.getAlpha() < 1) this.display();
	}
	,_wheel: function(event) {
		if(!this._wheelActive || this._isTweening) return;
		var delta = 0;
		if(!event) event = window.event;
		if(event.wheelDelta) delta = event.wheelDelta / 120; else if(event.detail) delta = -event.detail / 3;
		if(delta != 0) this._handle(delta);
		if(event.preventDefault) event.preventDefault();
		event.returnValue = false;
	}
	,_handle: function(delta) {
		this._isTweening = true;
		this._current.unselect();
		var value = 0;
		if(delta > 0) switch(this._current.domID) {
		case "btTop":
			this._current.select();
			this._isTweening = false;
			return;
		case "btMid":
			this._isDown = false;
			this._current = this._top;
			break;
		case "btBottom":
			this._isDown = true;
			this._current = this._mid;
			value = this.midY;
			break;
		} else switch(this._current.domID) {
		case "btTop":
			this._isDown = true;
			this._current = this._mid;
			value = this.midY;
			break;
		case "btMid":
			this._isDown = true;
			this._current = this._bottom;
			value = this.endY;
			break;
		case "btBottom":
			this._current.select();
			this._isTweening = false;
			return;
		}
		this._move(value);
	}
	,__class__: content.views.works.MiniNav
});
content.views.works.MiniNavItem = $hxClasses["content.views.works.MiniNavItem"] = function(jq,pID) {
	tools.ASprite.call(this,jq,pID);
	this.dom.css("cursor","pointer");
	this.setAlpha(1);
};
content.views.works.MiniNavItem.__name__ = ["content","views","works","MiniNavItem"];
content.views.works.MiniNavItem.__super__ = tools.ASprite;
content.views.works.MiniNavItem.prototype = $extend(tools.ASprite.prototype,{
	_selected: null
	,_rollOver: function(e) {
		if(this._selected) return;
	}
	,_rollOut: function(e) {
		if(this._selected) return;
	}
	,select: function() {
		this.dom.addClass("miniNavItemSelected");
		this.dom.css("cursor","default");
	}
	,unselect: function() {
		this.dom.removeClass("miniNavItemSelected");
		this.dom.css("cursor","pointer");
	}
	,__class__: content.views.works.MiniNavItem
});
content.views.works.NavItemWorks = $hxClasses["content.views.works.NavItemWorks"] = function(dom,id) {
	var me = this;
	tools.ASprite.call(this,dom);
	this._roll = new tools.ASprite(new $("#" + id));
	this._roll.dom.mouseover(function(e) {
		me._rollOver(e);
	});
	this._roll.dom.mouseout(function(e) {
		me._rollOut(e);
	});
	this._roll.setAlpha(1);
	this.setAlpha(0);
	this.setX(-100);
};
content.views.works.NavItemWorks.__name__ = ["content","views","works","NavItemWorks"];
content.views.works.NavItemWorks.__super__ = tools.ASprite;
content.views.works.NavItemWorks.prototype = $extend(tools.ASprite.prototype,{
	_selected: null
	,_roll: null
	,select: function() {
		this._selected = true;
		this.dom.css("cursor","default");
	}
	,unselect: function() {
		this._selected = false;
		this.dom.css("cursor","pointer");
		this._rollOut(null);
	}
	,_rollOver: function(e) {
		if(this._selected) return;
		this.tween(this._roll.getAlpha(),($_=this._roll,$_.setAlpha.$bind($_)),0,300,feffects.easing.Quad.easeInOut);
	}
	,_rollOut: function(e) {
		if(this._selected) return;
		this.tween(this._roll.getAlpha(),($_=this._roll,$_.setAlpha.$bind($_)),1,200,feffects.easing.Quad.easeInOut);
	}
	,__class__: content.views.works.NavItemWorks
});
content.views.works.NavWorks = $hxClasses["content.views.works.NavWorks"] = function(pDom) {
	tools.ASprite.call(this,pDom);
	this._items = new Array();
};
content.views.works.NavWorks.__name__ = ["content","views","works","NavWorks"];
content.views.works.NavWorks.__super__ = tools.ASprite;
content.views.works.NavWorks.prototype = $extend(tools.ASprite.prototype,{
	_items: null
	,_timer: null
	,_current: null
	,_old: null
	,i: null
	,build: function(data) {
		this.i = 0;
		var prod;
		while(this.i < data.length) {
			var html = "<div id=\"p" + this.i + "\" class=\"prod\" ><div id=\"" + this.i + "\" class=\"prodRoll\"></div></div>";
			this.dom.append(html);
			prod = new content.views.works.NavItemWorks(new $("#p" + this.i),this.i);
			prod.dom.css("background-image","url(" + data[this.i].thumb + ")");
			this._items[this.i] = prod;
			this.i++;
		}
	}
	,display: function() {
		this.i = -1;
		var limit = this._items.length - 1;
		while(this.i++ < limit) this._items[this.i].tweens([{ prop : ($_=this._items[this.i],$_.setX.$bind($_)), init : -100, value : 0},{ prop : ($_=this._items[this.i],$_.setAlpha.$bind($_)), init : 0, value : 1}],900,feffects.easing.Quint.easeOut,null,this.i * 50);
		this._items[limit].tweens([{ prop : ($_=this._items[limit],$_.setX.$bind($_)), init : -100, value : 0},{ prop : ($_=this._items[limit],$_.setAlpha.$bind($_)), init : 0, value : 1}],900,feffects.easing.Quint.easeOut,this._active.$bind(this),limit * 50);
	}
	,handleSelect: function(id) {
		if(this._old != null) this._old.unselect();
		this._current = this._items[id];
		this._current.select();
		this._old = this._current;
	}
	,_active: function() {
		var me = this;
		this.dom.mousemove(function(e) {
			me.checkMousePos(e);
		});
		if(this._timer != null) {
			this._timer.stop();
			this._timer = null;
		}
		this._mouseY = 0;
		this._timer = new haxe.Timer(25);
		this._timer.run = this._onMove.$bind(this);
	}
	,hide: function() {
		this.dom.mousemove(null);
		if(this._timer != null) {
			this._timer.stop();
			this._timer = null;
		}
		this.i = 0;
		while(this.i < this._items.length) {
			this._items[this.i].tween(1,($_=this._items[this.i],$_.setAlpha.$bind($_)),0,300,feffects.easing.Quint.easeOut);
			this.i++;
		}
	}
	,checkMousePos: function(e) {
		this._mouseY = e.pageY;
	}
	,_onMove: function() {
		this._ratio = this._mouseY / this._h;
		this._pos = this._ratio * this._max;
		this._smoothPos = this.getY() + (this._pos - this.getY()) * .05;
		this.setY(this._smoothPos);
	}
	,resize: function(w,h) {
		this.setHeight(h);
		this._h = h;
		this._max = this._h - this._items.length * 101;
	}
	,_smoothPos: null
	,_ratio: null
	,_pos: null
	,_h: null
	,_max: null
	,_mouseY: null
	,__class__: content.views.works.NavWorks
});
content.views.works.ScreenShot = $hxClasses["content.views.works.ScreenShot"] = function(j,id) {
	tools.ASprite.call(this,j);
	this._loaderImg = js.Lib.document.createElement("IMG");
	this.dom.append("<div id=\"bodyScreenShot" + id + "\"></div><div id=\"worksLoader" + id + "\" class=\"waiterLoader\"></div>");
	this._body = new tools.ASprite(new $("#bodyScreenShot" + id));
	this._body.dom.addClass("bodyShot");
	this._body.dom.css("z-index","10");
	this._contentRatio = 740 / 456;
	this._loader = new tools.ASprite(new $("#worksLoader" + id));
	this._loader.visible(false);
	this.setAlpha(0);
};
content.views.works.ScreenShot.__name__ = ["content","views","works","ScreenShot"];
content.views.works.ScreenShot.__super__ = tools.ASprite;
content.views.works.ScreenShot.prototype = $extend(tools.ASprite.prototype,{
	regW: null
	,regH: null
	,_body: null
	,_loader: null
	,_loaderImg: null
	,_url: null
	,_contentRatio: null
	,_timer: null
	,load: function(url,_delay) {
		if(_delay == null) _delay = 0;
		this.unactive(true);
		this._url = url;
		this._loader.visible(true);
		this._body.tween(1,($_=this._body,$_.setAlpha.$bind($_)),0,400,feffects.easing.Quad.easeOut,this._reload.$bind(this),_delay);
		this._body.dom.mouseover(null);
	}
	,_reload: function() {
		this._loaderImg.onload = this._apply.$bind(this);
		this._loaderImg.src = this._url;
	}
	,_apply: function(e) {
		var me = this;
		this._loader.visible(false);
		this._body.dom.css("background-image","url(" + this._url + ")");
		this._body.tween(this._body.getAlpha(),($_=this._body,$_.setAlpha.$bind($_)),1,400,feffects.easing.Quad.easeInOut);
		this._body.dom.mouseover(function(e1) {
			me._active();
		});
	}
	,_active: function() {
		var me = this;
		this._body.dom.mouseover(null);
		this._body.dom.mousemove(function(e) {
			me.checkMousePos(e);
		});
		if(this._timer != null) {
			this._timer.stop();
			this._timer = null;
		}
		this._mouseY = 0;
		this._timer = new haxe.Timer(30);
		this._timer.run = this._onMove.$bind(this);
	}
	,checkMousePos: function(e) {
		this._mouseX = e.pageX - 366;
		this._mouseY = e.pageY - 100;
	}
	,_onMove: function() {
		this._currentPX = this._mouseX / this.regW * (-this._bgW + this.regW);
		this._currentPY = this._mouseY / this.regH * (-this._bgH + this.regH);
		this._currentPX = Math.min(0,Math.max(this._currentPX,this._limitLeft));
		this._currentPY = Math.min(0,Math.max(this._currentPY,this._limitLow));
		this._smoothPY = this._smoothPY + (this._currentPY - this._smoothPY) * .2;
		this._smoothPX = this._smoothPX + (this._currentPX - this._smoothPX) * .2;
		this._body.dom.css("background-position",this._smoothPX + "px " + this._smoothPY + "px");
	}
	,unactive: function(hardKill) {
		var me = this;
		this._body.dom.mousemove(null);
		if(this._timer != null) this._timer.stop();
		this._body.dom.mouseover(function(e) {
			me._active();
		});
	}
	,resize: function(_w,_h) {
		this.regW = _w / 1.75;
		this.regH = _h / 1.75;
		this.setWidth(this.regW);
		this.setHeight(this.regH);
		var _screen = this.regW / this.regH;
		if(_screen >= this._contentRatio) {
			this._bgW = this.regW;
			this._bgH = this.regW / 7.4 * 4.56;
		} else {
			this._bgW = this.regH / 4.56 * 7.4;
			this._bgH = this.regH;
		}
		this._limitLeft = this.regW - this._bgW;
		this._limitLow = this.regH - this._bgH;
		this._body.dom.css("background-size",this._bgW + "px " + this._bgH + "px");
	}
	,_limitLeft: null
	,_limitLow: null
	,_bgW: null
	,_bgH: null
	,_currentPX: null
	,_currentPY: null
	,_smoothPX: null
	,_smoothPY: null
	,_mouseY: null
	,_mouseX: null
	,__class__: content.views.works.ScreenShot
});
content.views.works.ScreenWorks = $hxClasses["content.views.works.ScreenWorks"] = function(dom) {
	var me = this;
	tools.ASprite.call(this,dom);
	this.visible(false);
	var html = "\t<div id=\"currentLayer\" class=\"layer\">\r\n\t\t\t\t\t\t\t\t\t<div id=\"firstShot\" class=\"shots\"></div>\r\n\t\t\t\t\t\t\t\t\t<div id=\"secondShot\" class=\"shots\"></div>\r\n\t\t\t\t\t\t\t\t\t<div id=\"thirdShot\" class=\"shots\"></div>\r\n\t\t\t\t\t\t\t\t\t<div id=\"endDeco\"><img src=\"img/elements/sep_end_works.png\" /></div>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t<div id=\"miniNav\"></div>\r\n\t\t\t\t\t\t\t\t<div id=\"descProdz\"></div>\r\n\t\t\t\t\t\t\t\t<div id=\"demoPlayer\"></div>";
	dom.append(html);
	this._first = new content.views.works.ScreenShot(new $("#firstShot"),"A");
	this._second = new content.views.works.ScreenShot(new $("#secondShot"),"B");
	this._third = new content.views.works.ScreenShot(new $("#thirdShot"),"C");
	this._end = new tools.ASprite(new $("#endDeco"));
	this._currentLayer = new tools.ASprite(new $("#currentLayer"));
	this._desc = new content.views.works.LayerWorks(new $("#descProdz"));
	this._demo = new content.views.works.DemoPlayer(new $("#demoPlayer"));
	this._miniNav = new content.views.works.MiniNav(new $("#miniNav"),this._currentLayer,this._unactiveAllShots.$bind(this));
	this._desc.demoButton().mousedown(function(e) {
		me._displayVideoPlayer(e);
	});
	this._firstLoad = true;
	this._end.dom.css("position","absolute");
	this.setAlpha(0);
	this._currentLayer.setY(0);
};
content.views.works.ScreenWorks.__name__ = ["content","views","works","ScreenWorks"];
content.views.works.ScreenWorks.__super__ = tools.ASprite;
content.views.works.ScreenWorks.prototype = $extend(tools.ASprite.prototype,{
	_currentLayer: null
	,_desc: null
	,_demo: null
	,_miniNav: null
	,_data: null
	,_firstLoad: null
	,_first: null
	,_second: null
	,_third: null
	,_end: null
	,_timer: null
	,display: function() {
		this.tween(0,this.setAlpha.$bind(this),1,600,feffects.easing.Quad.easeOut);
		if(!this._firstLoad) this._miniNav.display();
	}
	,hide: function() {
		this._demo.hide();
		this.tween(1,this.setAlpha.$bind(this),0,500,feffects.easing.Quad.easeOut);
		this._miniNav.hide();
		this._unactiveAllShots(true);
	}
	,_displayVideoPlayer: function(e) {
		this._unactiveAllShots(false);
		this._demo.buildAndPlay(this._data.demo);
	}
	,_unactiveAllShots: function(hardKill) {
		if(hardKill == null) hardKill = false;
		this._first.unactive(hardKill);
		this._second.unactive(hardKill);
		this._third.unactive(hardKill);
	}
	,switchContent: function(data) {
		this._data = data;
		this._miniNav.reInit();
		if(this._demo.isOpen) this._demo.hide();
		this._desc.build(this._data);
		this._first.load(this._data.pic[0]);
		this._second.load(this._data.pic[1],250);
		this._third.load(this._data.pic[2],400);
		if(this._firstLoad) {
			this._firstLoad = false;
			this._first.tween(0,($_=this._first,$_.setAlpha.$bind($_)),1,400,feffects.easing.Quad.easeInOut);
			this._second.tween(0,($_=this._second,$_.setAlpha.$bind($_)),1,400,feffects.easing.Quad.easeInOut,null,200);
			this._third.tween(0,($_=this._third,$_.setAlpha.$bind($_)),1,400,feffects.easing.Quad.easeInOut,null,200);
			this.visible(true);
			this._miniNav.display();
		}
	}
	,resize: function(_w,_h) {
		this.setWidth(_w);
		this.setHeight(_h);
		this._currentLayer.setWidth(_w);
		this._currentLayer.setHeight(_h);
		this._currentLayer.setX(316);
		this._first.resize(_w - 50,_h - 50);
		this._second.resize(_w - 50,_h - 50);
		this._third.resize(_w - 50,_h - 50);
		var _left = 50;
		if(_w < 744) _left = 25;
		this._first.setX(_left);
		this._first.setY(100);
		this._second.setX(_left);
		this._second.setY(this._first.getY() + this._first.getHeight() + _left);
		this._third.setX(_left);
		this._third.setY(this._second.getY() + this._second.getHeight() + _left);
		this._end.setY(this._third.getY() + this._third.getHeight() + 60);
		this._end.setX(_left - 75 + this._third.getWidth() * .5);
		this._desc.setX(this._first.getX() + this._first.getWidth() + _left + 316);
		this._miniNav.setX(this._desc.getX());
		this._miniNav.setY(360);
		this._miniNav.midY = -this._first.regH - _left;
		this._miniNav.endY = -this._first.regH * 2 - _left * 2;
		this._demo.resize(_w,_h);
	}
	,__class__: content.views.works.ScreenWorks
});
var haxe = haxe || {}
haxe.FastList = $hxClasses["haxe.FastList"] = function() {
};
haxe.FastList.__name__ = ["haxe","FastList"];
haxe.FastList.prototype = {
	head: null
	,add: function(item) {
		this.head = new haxe.FastCell(item,this.head);
	}
	,first: function() {
		return this.head == null?null:this.head.elt;
	}
	,pop: function() {
		var k = this.head;
		if(k == null) return null; else {
			this.head = k.next;
			return k.elt;
		}
	}
	,isEmpty: function() {
		return this.head == null;
	}
	,remove: function(v) {
		var prev = null;
		var l = this.head;
		while(l != null) {
			if(l.elt == v) {
				if(prev == null) this.head = l.next; else prev.next = l.next;
				break;
			}
			prev = l;
			l = l.next;
		}
		return l != null;
	}
	,iterator: function() {
		var l = this.head;
		return { hasNext : function() {
			return l != null;
		}, next : function() {
			var k = l;
			l = k.next;
			return k.elt;
		}};
	}
	,toString: function() {
		var a = new Array();
		var l = this.head;
		while(l != null) {
			a.push(l.elt);
			l = l.next;
		}
		return "{" + a.join(",") + "}";
	}
	,__class__: haxe.FastList
}
var feffects = feffects || {}
feffects.Tween = $hxClasses["feffects.Tween"] = function(init,end,dur,_obj,_prop,easing) {
	this._initVal = init;
	this._endVal = end;
	this.duration = dur;
	this._easingF = easing;
	this.isPlaying = false;
};
feffects.Tween.__name__ = ["feffects","Tween"];
feffects.Tween._timer = null;
feffects.Tween.AddTween = function(tween) {
	feffects.Tween._aTweens.add(tween);
	feffects.Tween._timer.run = feffects.Tween.DispatchTweens;
}
feffects.Tween.RemoveTween = function(tween) {
	if(tween == null || feffects.Tween._timer == null) return;
	feffects.Tween._aTweens.remove(tween);
	if(feffects.Tween._aTweens.head == null && feffects.Tween._aPaused.head == null) {
		feffects.Tween._timer.stop();
		feffects.Tween._timer = null;
	}
}
feffects.Tween.getActiveTweens = function() {
	return feffects.Tween._aTweens;
}
feffects.Tween.getPausedTweens = function() {
	return feffects.Tween._aPaused;
}
feffects.Tween.setTweenPaused = function(tween) {
	if(tween == null || feffects.Tween._timer == null) return;
	feffects.Tween._aPaused.add(tween);
	feffects.Tween._aTweens.remove(tween);
}
feffects.Tween.setTweenActive = function(tween) {
	if(tween == null || feffects.Tween._timer == null) return;
	feffects.Tween._aTweens.add(tween);
	feffects.Tween._aPaused.remove(tween);
}
feffects.Tween.DispatchTweens = function() {
	var $it0 = feffects.Tween._aTweens.iterator();
	while( $it0.hasNext() ) {
		var i = $it0.next();
		i.doInterval();
	}
}
feffects.Tween.prototype = {
	duration: null
	,isPlaying: null
	,_initVal: null
	,_endVal: null
	,_startTime: null
	,_easingF: null
	,_obj: null
	,_prop: null
	,start: function() {
		if(feffects.Tween._timer != null) feffects.Tween._timer.stop();
		feffects.Tween._timer = new haxe.Timer(5);
		this._startTime = Date.now().getTime();
		feffects.Tween.AddTween(this);
		this.isPlaying = true;
	}
	,stop: function() {
		feffects.Tween.RemoveTween(this);
		this.isPlaying = false;
	}
	,setTweenHandlers: function(update,end) {
		this.updateFunc = update;
		if(end == null) this.endFunc = this._fake.$bind(this); else this.endFunc = end;
	}
	,_fake: function(v) {
		if(v == null) v = 0;
	}
	,setEasing: function(easingFunc) {
		if(easingFunc != null) this._easingF = easingFunc;
	}
	,updateFunc: function(e) {
	}
	,endFunc: function(e) {
	}
	,doInterval: function() {
		var stamp = Date.now().getTime();
		var curTime = 0;
		curTime = stamp - this._startTime;
		var curVal = this._easingF(curTime,this._initVal,this._endVal - this._initVal,this.duration);
		if(curTime < this.duration) this.updateFunc(curVal); else this.endTween();
	}
	,getCurVal: function(curTime) {
		return this._easingF(curTime,this._initVal,this._endVal - this._initVal,this.duration);
	}
	,getStamp: function() {
		return Date.now().getTime();
	}
	,endTween: function() {
		feffects.Tween.RemoveTween(this);
		this.updateFunc(this._endVal);
		this.endFunc(this._endVal);
	}
	,easingEquation: function(t,b,c,d) {
		return c / 2 * (Math.sin(Math.PI * (t / d - 0.5)) + 1) + b;
	}
	,__class__: feffects.Tween
}
haxe.Public = $hxClasses["haxe.Public"] = function() { }
haxe.Public.__name__ = ["haxe","Public"];
haxe.Public.prototype = {
	__class__: haxe.Public
}
if(!feffects.easing) feffects.easing = {}
feffects.easing.Back = $hxClasses["feffects.easing.Back"] = function() { }
feffects.easing.Back.__name__ = ["feffects","easing","Back"];
feffects.easing.Back.__interfaces__ = [haxe.Public];
feffects.easing.Back.easeIn = function(t,b,c,d) {
	return c * (t /= d) * t * (2.70158 * t - 1.70158) + b;
}
feffects.easing.Back.easeOut = function(t,b,c,d) {
	return c * ((t = t / d - 1) * t * (2.70158 * t + 1.70158) + 1) + b;
}
feffects.easing.Back.easeInOut = function(t,b,c,d) {
	var s = 1.70158;
	if((t /= d * 0.5) < 1) return c * 0.5 * (t * t * (((s *= 1.525) + 1) * t - s)) + b; else return c * 0.5 * ((t -= 2) * t * (((s *= 1.525) + 1) * t + s) + 2) + b;
}
feffects.easing.Back.prototype = {
	__class__: feffects.easing.Back
}
feffects.easing.Bounce = $hxClasses["feffects.easing.Bounce"] = function() { }
feffects.easing.Bounce.__name__ = ["feffects","easing","Bounce"];
feffects.easing.Bounce.__interfaces__ = [haxe.Public];
feffects.easing.Bounce.easeOut = function(t,b,c,d) {
	if((t /= d) < 1 / 2.75) return c * (7.5625 * t * t) + b; else if(t < 2 / 2.75) return c * (7.5625 * (t -= 1.5 / 2.75) * t + .75) + b; else if(t < 2.5 / 2.75) return c * (7.5625 * (t -= 2.25 / 2.75) * t + .9375) + b; else return c * (7.5625 * (t -= 2.625 / 2.75) * t + .984375) + b;
}
feffects.easing.Bounce.easeIn = function(t,b,c,d) {
	return c - feffects.easing.Bounce.easeOut(d - t,0,c,d) + b;
}
feffects.easing.Bounce.easeInOut = function(t,b,c,d) {
	if(t < d * 0.5) return (c - feffects.easing.Bounce.easeOut(d - t * 2,0,c,d)) * .5 + b; else return feffects.easing.Bounce.easeOut(t * 2 - d,0,c,d) * .5 + c * .5 + b;
}
feffects.easing.Bounce.prototype = {
	__class__: feffects.easing.Bounce
}
feffects.easing.Elastic = $hxClasses["feffects.easing.Elastic"] = function() { }
feffects.easing.Elastic.__name__ = ["feffects","easing","Elastic"];
feffects.easing.Elastic.__interfaces__ = [haxe.Public];
feffects.easing.Elastic.easeIn = function(t,b,c,d) {
	if(t == 0) return b;
	if((t /= d) == 1) return b + c; else {
		var p = d * .3;
		var s = p * 0.25;
		return -(c * Math.pow(2,10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p)) + b;
	}
}
feffects.easing.Elastic.easeOut = function(t,b,c,d) {
	if(t == 0) return b; else if((t /= d) == 1) return b + c; else {
		var p = d * .3;
		var s = p * 0.25;
		return c * Math.pow(2,-10 * t) * Math.sin((t * d - s) * (2 * Math.PI) / p) + c + b;
	}
}
feffects.easing.Elastic.easeInOut = function(t,b,c,d) {
	if(t == 0) return b; else if((t /= d / 2) == 2) return b + c; else {
		var p = d * (.3 * 1.5);
		var s = p * 0.25;
		if(t < 1) return -0.5 * (c * Math.pow(2,10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p)) + b; else return c * Math.pow(2,-10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p) * .5 + c + b;
	}
}
feffects.easing.Elastic.prototype = {
	__class__: feffects.easing.Elastic
}
feffects.easing.Expo = $hxClasses["feffects.easing.Expo"] = function() { }
feffects.easing.Expo.__name__ = ["feffects","easing","Expo"];
feffects.easing.Expo.__interfaces__ = [haxe.Public];
feffects.easing.Expo.easeIn = function(t,b,c,d) {
	return t == 0?b:c * Math.pow(2,10 * (t / d - 1)) + b;
}
feffects.easing.Expo.easeOut = function(t,b,c,d) {
	return t == d?b + c:c * (-Math.pow(2,-10 * t / d) + 1) + b;
}
feffects.easing.Expo.easeInOut = function(t,b,c,d) {
	if(t == 0) return b; else if(t == d) return b + c; else if((t /= d / 2) < 1) return c * 0.5 * Math.pow(2,10 * (t - 1)) + b; else return c * 0.5 * (-Math.pow(2,-10 * --t) + 2) + b;
}
feffects.easing.Expo.prototype = {
	__class__: feffects.easing.Expo
}
feffects.easing.Quad = $hxClasses["feffects.easing.Quad"] = function() { }
feffects.easing.Quad.__name__ = ["feffects","easing","Quad"];
feffects.easing.Quad.__interfaces__ = [haxe.Public];
feffects.easing.Quad.easeIn = function(t,b,c,d) {
	return c * (t /= d) * t + b;
}
feffects.easing.Quad.easeOut = function(t,b,c,d) {
	return -c * (t /= d) * (t - 2) + b;
}
feffects.easing.Quad.easeInOut = function(t,b,c,d) {
	if((t /= d * 0.5) < 1) return c * 0.5 * t * t + b; else return -c * 0.5 * (--t * (t - 2) - 1) + b;
}
feffects.easing.Quad.prototype = {
	__class__: feffects.easing.Quad
}
feffects.easing.Quint = $hxClasses["feffects.easing.Quint"] = function() { }
feffects.easing.Quint.__name__ = ["feffects","easing","Quint"];
feffects.easing.Quint.__interfaces__ = [haxe.Public];
feffects.easing.Quint.easeIn = function(t,b,c,d) {
	return c * (t /= d) * t * t * t * t + b;
}
feffects.easing.Quint.easeOut = function(t,b,c,d) {
	return c * ((t = t / d - 1) * t * t * t * t + 1) + b;
}
feffects.easing.Quint.easeInOut = function(t,b,c,d) {
	if((t /= d * 0.5) < 1) return c * 0.5 * t * t * t * t * t + b; else return c * 0.5 * ((t -= 2) * t * t * t * t + 2) + b;
}
feffects.easing.Quint.prototype = {
	__class__: feffects.easing.Quint
}
feffects.easing.Sine = $hxClasses["feffects.easing.Sine"] = function() { }
feffects.easing.Sine.__name__ = ["feffects","easing","Sine"];
feffects.easing.Sine.__interfaces__ = [haxe.Public];
feffects.easing.Sine.easeIn = function(t,b,c,d) {
	return -c * Math.cos(t / d * (Math.PI * 0.5)) + c + b;
}
feffects.easing.Sine.easeOut = function(t,b,c,d) {
	return c * Math.sin(t / d * (Math.PI * 0.5)) + b;
}
feffects.easing.Sine.easeInOut = function(t,b,c,d) {
	return -c * 0.5 * (Math.cos(Math.PI * t / d) - 1) + b;
}
feffects.easing.Sine.prototype = {
	__class__: feffects.easing.Sine
}
haxe.FastCell = $hxClasses["haxe.FastCell"] = function(elt,next) {
	this.elt = elt;
	this.next = next;
};
haxe.FastCell.__name__ = ["haxe","FastCell"];
haxe.FastCell.prototype = {
	elt: null
	,next: null
	,__class__: haxe.FastCell
}
haxe.Log = $hxClasses["haxe.Log"] = function() { }
haxe.Log.__name__ = ["haxe","Log"];
haxe.Log.trace = function(v,infos) {
	js.Boot.__trace(v,infos);
}
haxe.Log.clear = function() {
	js.Boot.__clear_trace();
}
haxe.Log.prototype = {
	__class__: haxe.Log
}
haxe.Timer = $hxClasses["haxe.Timer"] = function(time_ms) {
	var me = this;
	this.id = window.setInterval(function() {
		me.run();
	},time_ms);
};
haxe.Timer.__name__ = ["haxe","Timer"];
haxe.Timer.delay = function(f,time_ms) {
	var t = new haxe.Timer(time_ms);
	t.run = function() {
		t.stop();
		f();
	};
	return t;
}
haxe.Timer.measure = function(f,pos) {
	var t0 = haxe.Timer.stamp();
	var r = f();
	haxe.Log.trace(haxe.Timer.stamp() - t0 + "s",pos);
	return r;
}
haxe.Timer.stamp = function() {
	return Date.now().getTime() / 1000;
}
haxe.Timer.prototype = {
	id: null
	,stop: function() {
		if(this.id == null) return;
		window.clearInterval(this.id);
		this.id = null;
	}
	,run: function() {
	}
	,__class__: haxe.Timer
}
var js = js || {}
js.Boot = $hxClasses["js.Boot"] = function() { }
js.Boot.__name__ = ["js","Boot"];
js.Boot.__unhtml = function(s) {
	return s.split("&").join("&amp;").split("<").join("&lt;").split(">").join("&gt;");
}
js.Boot.__trace = function(v,i) {
	var msg = i != null?i.fileName + ":" + i.lineNumber + ": ":"";
	msg += js.Boot.__string_rec(v,"");
	var d = document.getElementById("haxe:trace");
	if(d != null) d.innerHTML += js.Boot.__unhtml(msg) + "<br/>"; else if(typeof(console) != "undefined" && console.log != null) console.log(msg);
}
js.Boot.__clear_trace = function() {
	var d = document.getElementById("haxe:trace");
	if(d != null) d.innerHTML = "";
}
js.Boot.__string_rec = function(o,s) {
	if(o == null) return "null";
	if(s.length >= 5) return "<...>";
	var t = typeof(o);
	if(t == "function" && (o.__name__ != null || o.__ename__ != null)) t = "object";
	switch(t) {
	case "object":
		if(o instanceof Array) {
			if(o.__enum__ != null) {
				if(o.length == 2) return o[0];
				var str = o[0] + "(";
				s += "\t";
				var _g1 = 2, _g = o.length;
				while(_g1 < _g) {
					var i = _g1++;
					if(i != 2) str += "," + js.Boot.__string_rec(o[i],s); else str += js.Boot.__string_rec(o[i],s);
				}
				return str + ")";
			}
			var l = o.length;
			var i;
			var str = "[";
			s += "\t";
			var _g = 0;
			while(_g < l) {
				var i1 = _g++;
				str += (i1 > 0?",":"") + js.Boot.__string_rec(o[i1],s);
			}
			str += "]";
			return str;
		}
		var tostr;
		try {
			tostr = o.toString;
		} catch( e ) {
			return "???";
		}
		if(tostr != null && tostr != Object.toString) {
			var s2 = o.toString();
			if(s2 != "[object Object]") return s2;
		}
		var k = null;
		var str = "{\n";
		s += "\t";
		var hasp = o.hasOwnProperty != null;
		for( var k in o ) { ;
		if(hasp && !o.hasOwnProperty(k)) {
			continue;
		}
		if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") {
			continue;
		}
		if(str.length != 2) str += ", \n";
		str += s + k + " : " + js.Boot.__string_rec(o[k],s);
		}
		s = s.substring(1);
		str += "\n" + s + "}";
		return str;
	case "function":
		return "<function>";
	case "string":
		return o;
	default:
		return String(o);
	}
}
js.Boot.__interfLoop = function(cc,cl) {
	if(cc == null) return false;
	if(cc == cl) return true;
	var intf = cc.__interfaces__;
	if(intf != null) {
		var _g1 = 0, _g = intf.length;
		while(_g1 < _g) {
			var i = _g1++;
			var i1 = intf[i];
			if(i1 == cl || js.Boot.__interfLoop(i1,cl)) return true;
		}
	}
	return js.Boot.__interfLoop(cc.__super__,cl);
}
js.Boot.__instanceof = function(o,cl) {
	try {
		if(o instanceof cl) {
			if(cl == Array) return o.__enum__ == null;
			return true;
		}
		if(js.Boot.__interfLoop(o.__class__,cl)) return true;
	} catch( e ) {
		if(cl == null) return false;
	}
	switch(cl) {
	case Int:
		return Math.ceil(o%2147483648.0) === o;
	case Float:
		return typeof(o) == "number";
	case Bool:
		return o === true || o === false;
	case String:
		return typeof(o) == "string";
	case Dynamic:
		return true;
	default:
		if(o == null) return false;
		return o.__enum__ == cl || cl == Class && o.__name__ != null || cl == Enum && o.__ename__ != null;
	}
}
js.Boot.__init = function() {
	js.Lib.isIE = typeof document!='undefined' && document.all != null && typeof window!='undefined' && window.opera == null;
	js.Lib.isOpera = typeof window!='undefined' && window.opera != null;
	Array.prototype.copy = Array.prototype.slice;
	Array.prototype.insert = function(i,x) {
		this.splice(i,0,x);
	};
	Array.prototype.remove = Array.prototype.indexOf?function(obj) {
		var idx = this.indexOf(obj);
		if(idx == -1) return false;
		this.splice(idx,1);
		return true;
	}:function(obj) {
		var i = 0;
		var l = this.length;
		while(i < l) {
			if(this[i] == obj) {
				this.splice(i,1);
				return true;
			}
			i++;
		}
		return false;
	};
	Array.prototype.iterator = function() {
		return { cur : 0, arr : this, hasNext : function() {
			return this.cur < this.arr.length;
		}, next : function() {
			return this.arr[this.cur++];
		}};
	};
	if(String.prototype.cca == null) String.prototype.cca = String.prototype.charCodeAt;
	String.prototype.charCodeAt = function(i) {
		var x = this.cca(i);
		if(x != x) return undefined;
		return x;
	};
	var oldsub = String.prototype.substr;
	String.prototype.substr = function(pos,len) {
		if(pos != null && pos != 0 && len != null && len < 0) return "";
		if(len == null) len = this.length;
		if(pos < 0) {
			pos = this.length + pos;
			if(pos < 0) pos = 0;
		} else if(len < 0) len = this.length + len - pos;
		return oldsub.apply(this,[pos,len]);
	};
	Function.prototype["$bind"] = function(o) {
		var f = function() {
			return f.method.apply(f.scope,arguments);
		};
		f.scope = o;
		f.method = this;
		return f;
	};
}
js.Boot.prototype = {
	__class__: js.Boot
}
js.Lib = $hxClasses["js.Lib"] = function() { }
js.Lib.__name__ = ["js","Lib"];
js.Lib.isIE = null;
js.Lib.isOpera = null;
js.Lib.document = null;
js.Lib.window = null;
js.Lib.alert = function(v) {
	alert(js.Boot.__string_rec(v,""));
}
js.Lib.eval = function(code) {
	return eval(code);
}
js.Lib.setErrorHandler = function(f) {
	js.Lib.onerror = f;
}
js.Lib.prototype = {
	__class__: js.Lib
}
var net = net || {}
if(!net.address) net.address = {}
net.address.Address = $hxClasses["net.address.Address"] = function() {
};
net.address.Address.__name__ = ["net","address","Address"];
net.address.Address._callBacks = null;
net.address.Address._hash = null;
net.address.Address._ref = null;
net.address.Address._callBack = null;
net.address.Address._autoChangeAllowed = null;
net.address.Address.init = function(ref,callBack) {
	if(net.address.Address._callBacks == null) net.address.Address._callBacks = new Array();
	net.address.Address._callBacks.push(callBack);
	net.address.Address._autoChangeAllowed = false;
	js.Lib.window.onhashchange = function() {
		net.address.Address.onChange();
	};
	net.address.Address.onChange();
}
net.address.Address["goto"] = function(hash,trustedID) {
	if(trustedID == null) trustedID = false;
	net.address.Address._hash = hash;
	net.address.Address._autoChangeAllowed = true;
	js.Lib.window.location.href = net.address.Address._hash;
}
net.address.Address.onChange = function() {
	if(net.address.Address._autoChangeAllowed == false) net.address.Address._hash = net.address.Address.getHref();
	var i = 0;
	while(i < net.address.Address._callBacks.length) {
		net.address.Address._callBacks[i](net.address.Address._hash);
		i++;
	}
	net.address.Address._autoChangeAllowed = false;
}
net.address.Address.addCallBack = function(fn) {
	if(net.address.Address._callBacks == null) net.address.Address._callBacks = new Array();
	net.address.Address._callBacks.push(fn);
}
net.address.Address.getHref = function() {
	var hash = "";
	if(js.Lib.window.location.href.split("#")[1] != null) hash = "#" + js.Lib.window.location.href.split("#")[1];
	return hash;
}
net.address.Address.prototype = {
	__class__: net.address.Address
}
var params = params || {}
params.GlobalParams = $hxClasses["params.GlobalParams"] = function() {
};
params.GlobalParams.__name__ = ["params","GlobalParams"];
params.GlobalParams.prototype = {
	__class__: params.GlobalParams
}
tools.BoundProvider = $hxClasses["tools.BoundProvider"] = function() {
};
tools.BoundProvider.__name__ = ["tools","BoundProvider"];
tools.BoundProvider.winW = null;
tools.BoundProvider.winH = null;
tools.BoundProvider.bgW = null;
tools.BoundProvider.bgH = null;
tools.BoundProvider.bgX = null;
tools.BoundProvider.bgY = null;
tools.BoundProvider._screen = null;
tools.BoundProvider._content = null;
tools.BoundProvider.getBounds = function() {
	tools.BoundProvider.winW = js.Lib.window.innerWidth;
	tools.BoundProvider.winH = js.Lib.window.innerHeight;
	tools.BoundProvider._content = 16 / 9;
	tools.BoundProvider.getBackgroundSize();
}
tools.BoundProvider.getBackgroundSize = function() {
	tools.BoundProvider._screen = tools.BoundProvider.winW / tools.BoundProvider.winH;
	if(tools.BoundProvider._screen >= tools.BoundProvider._content) {
		tools.BoundProvider.bgW = tools.BoundProvider.winW;
		tools.BoundProvider.bgH = tools.BoundProvider.winW / 16 * 9;
	} else {
		tools.BoundProvider.bgW = tools.BoundProvider.winH / 9 * 16;
		tools.BoundProvider.bgH = tools.BoundProvider.winH;
	}
	tools.BoundProvider.bgX = (tools.BoundProvider.winW - tools.BoundProvider.bgW) * .5;
	tools.BoundProvider.bgY = (tools.BoundProvider.winH - tools.BoundProvider.bgH) * .5;
}
tools.BoundProvider.prototype = {
	__class__: tools.BoundProvider
}
if(!tools.batcher) tools.batcher = {}
tools.batcher.Batcher = $hxClasses["tools.batcher.Batcher"] = function(target,fCallBack) {
	this._fCallBack = fCallBack;
	this._target = target;
	this._urls = new Array();
};
tools.batcher.Batcher.__name__ = ["tools","batcher","Batcher"];
tools.batcher.Batcher.prototype = {
	killed: null
	,_fCallBack: null
	,_target: null
	,_urls: null
	,_img: null
	,addItem: function(url) {
		this._urls.push(url);
	}
	,start: function() {
		this._load();
	}
	,_load: function() {
		this._img = js.Lib.document.createElement("IMG");
		this._img.onload = this._loaded.$bind(this);
		this._img.src = this._urls[this._urls.length - 1];
	}
	,_loaded: function(e) {
		this._urls.pop();
		if(this._urls.length > 0) this._load(); else if(!this.killed) this._fCallBack.apply(this._target,[]);
	}
	,__class__: tools.batcher.Batcher
}
var ui = ui || {}
ui.Background = $hxClasses["ui.Background"] = function() {
	tools.ASprite.call(this,new $("#bg"));
	this.setAlpha(0);
	this.dom.css("background-image","url(" + params.GlobalParams.BG_MAIN + ")");
};
ui.Background.__name__ = ["ui","Background"];
ui.Background.__super__ = tools.ASprite;
ui.Background.prototype = $extend(tools.ASprite.prototype,{
	_this: null
	,_pic: null
	,display: function() {
		this.tween(0,this.setAlpha.$bind(this),1,500,feffects.easing.Sine.easeInOut,null);
	}
	,resize: function(_w,_h,_bgW,_bgH,_bgX,_bgY) {
		this.dom.css("width",_w + "px");
		this.dom.css("height",_h + "px");
		this.dom.css("background-position",_bgX + "px " + _bgY + "px");
		this.dom.css("background-size",_bgW + "px " + _bgH + "px");
	}
	,__class__: ui.Background
});
ui.Footer = $hxClasses["ui.Footer"] = function() {
	tools.ASprite.call(this,new $("footer"));
	this.setAlpha(0);
	this.setWidth(500);
	this.visible(true);
};
ui.Footer.__name__ = ["ui","Footer"];
ui.Footer.__super__ = tools.ASprite;
ui.Footer.prototype = $extend(tools.ASprite.prototype,{
	display: function() {
		this.tween(0,this.setAlpha.$bind(this),1,500,feffects.easing.Quad.easeIn,null,200);
	}
	,resize: function(_w,_h) {
		var _y = _h - 30;
		this.setY(_y);
		this.setX(_w - 520);
	}
	,__class__: ui.Footer
});
ui.Header = $hxClasses["ui.Header"] = function() {
	tools.ASprite.call(this,new $("header"));
	this._nav = new ui.nav.Nav(js.Lib.document.getElementById("#navigation"),new $("#navigation"));
	this._shadow = new $("#shadow");
	var posx = 56.5;
	this._nav.setX(posx);
	this.visible(true);
};
ui.Header.__name__ = ["ui","Header"];
ui.Header.__super__ = tools.ASprite;
ui.Header.prototype = $extend(tools.ASprite.prototype,{
	_nav: null
	,_shadow: null
	,display: function() {
		this.tween(-216,this.setX.$bind(this),0,1000,feffects.easing.Quint.easeOut,null,300);
	}
	,resize: function(_h) {
		this.setHeight(_h);
		this._nav.setY(100);
		var _y = (_h - 724) * .5;
		this._shadow.css("top",_y + "px");
	}
	,__class__: ui.Header
});
if(!ui.nav) ui.nav = {}
ui.nav.Logo = $hxClasses["ui.nav.Logo"] = function(jq) {
	var me = this;
	tools.ASprite.call(this,jq);
	this.dom.mouseover(function(e) {
		me._onOver(e);
	});
	this.dom.mouseout(function(e) {
		me._onOut(e);
	});
	this.setAlpha(1);
};
ui.nav.Logo.__name__ = ["ui","nav","Logo"];
ui.nav.Logo.__super__ = tools.ASprite;
ui.nav.Logo.prototype = $extend(tools.ASprite.prototype,{
	_onOver: function(e) {
		this.tween(1,this.setAlpha.$bind(this),.75,400,feffects.easing.Quad.easeInOut);
	}
	,_onOut: function(e) {
		this.tween(this.getAlpha(),this.setAlpha.$bind(this),1,300,feffects.easing.Quad.easeInOut);
	}
	,__class__: ui.nav.Logo
});
ui.nav.Nav = $hxClasses["ui.nav.Nav"] = function(view,elem) {
	var me = this;
	tools.ASprite.call(this,elem);
	this._view = view;
	this._logo = new ui.nav.Logo(new $("#logo"));
	this._logo.dom.click(function(e) {
		me.onClick(e);
	});
	this._bt_works = new ui.nav.NavItem("#btWorks","wCanvas","WORKS");
	this._bt_works.dom.css("letter-spacing","4px");
	this._bt_works.dom.click(function(e) {
		me.onClick(e);
	});
	this._bt_about = new ui.nav.NavItem("#btAbout","aCanvas","ABOUT");
	this._bt_about.dom.css("letter-spacing","5px");
	this._bt_about.dom.click(function(e) {
		me.onClick(e);
	});
	this._bt_contact = new ui.nav.NavItem("#btContact","cCanvas","CONTACT");
	this._bt_contact.dom.css("letter-spacing","1.7px");
	this._bt_contact.dom.css("margin-left","-2px");
	this._bt_contact.dom.click(function(e) {
		me.onClick(e);
	});
	this._bt_links = new ui.nav.NavItem("#btLinks","lCanvas","LINKS");
	this._bt_links.dom.css("letter-spacing","6px");
	this._bt_links.dom.click(function(e) {
		me.onClick(e);
	});
	net.address.Address.addCallBack(this._handleSelect.$bind(this));
};
ui.nav.Nav.__name__ = ["ui","nav","Nav"];
ui.nav.Nav.__super__ = tools.ASprite;
ui.nav.Nav.prototype = $extend(tools.ASprite.prototype,{
	_view: null
	,_this: null
	,_bt_works: null
	,_bt_about: null
	,_bt_contact: null
	,_bt_links: null
	,_current: null
	,_old: null
	,_logo: null
	,onClick: function(e) {
		if(content.ContentManager.isMoving) return;
		var hash = "";
		switch(e.target.id) {
		case "logo":
			hash = params.GlobalParams.ID_MAIN;
			break;
		case "btWorks":
			hash = params.GlobalParams.ID_WORKS;
			break;
		case "btAbout":
			hash = params.GlobalParams.ID_ABOUT;
			break;
		case "btContact":
			hash = params.GlobalParams.ID_CONTACT;
			break;
		case "btLinks":
			hash = params.GlobalParams.ID_LINKS;
			break;
		}
		net.address.Address["goto"](hash);
	}
	,_handleSelect: function(hash) {
		if(this._old != null) this._old.unselect();
		switch(hash) {
		case "":
			this.clear();
			return;
		case params.GlobalParams.ID_MAIN:
			this.clear();
			return;
		case params.GlobalParams.ID_WORKS:
			this._current = this._bt_works;
			break;
		case params.GlobalParams.ID_ABOUT:
			this._current = this._bt_about;
			break;
		case params.GlobalParams.ID_CONTACT:
			this._current = this._bt_contact;
			break;
		case params.GlobalParams.ID_LINKS:
			this._current = this._bt_links;
			break;
		}
		if(this._current == null) return;
		this._current.select();
		this._old = this._current;
	}
	,clear: function() {
		if(this._old != null) {
			this._old.unselect();
			this._old = null;
		}
		if(this._current != null) {
			this._current.unselect();
			this._current = null;
		}
	}
	,__class__: ui.nav.Nav
});
ui.nav.NavItem = $hxClasses["ui.nav.NavItem"] = function(_id,_cnv,_text) {
	tools.ASprite.call(this,new $(_id),_id);
	this.selected = false;
	var html = _text;
	this.dom.append(html);
};
ui.nav.NavItem.__name__ = ["ui","nav","NavItem"];
ui.nav.NavItem.__super__ = tools.ASprite;
ui.nav.NavItem.prototype = $extend(tools.ASprite.prototype,{
	navID: null
	,_lbl: null
	,selected: null
	,canvas: null
	,stage: null
	,bg: null
	,select: function() {
		this.selected = true;
		this.dom.addClass("navSelect");
		if(js.Lib.isIE) this.dom.css("color","#FC0");
	}
	,unselect: function() {
		this.selected = false;
		this.dom.removeClass("navSelect");
		if(js.Lib.isIE) this.dom.css("color","#FFF");
	}
	,__class__: ui.nav.NavItem
});
js.Boot.__res = {}
js.Boot.__init();
{
	var d = Date;
	d.now = function() {
		return new Date();
	};
	d.fromTime = function(t) {
		var d1 = new Date();
		d1["setTime"](t);
		return d1;
	};
	d.fromString = function(s) {
		switch(s.length) {
		case 8:
			var k = s.split(":");
			var d1 = new Date();
			d1["setTime"](0);
			d1["setUTCHours"](k[0]);
			d1["setUTCMinutes"](k[1]);
			d1["setUTCSeconds"](k[2]);
			return d1;
		case 10:
			var k = s.split("-");
			return new Date(k[0],k[1] - 1,k[2],0,0,0);
		case 19:
			var k = s.split(" ");
			var y = k[0].split("-");
			var t = k[1].split(":");
			return new Date(y[0],y[1] - 1,y[2],t[0],t[1],t[2]);
		default:
			throw "Invalid date format : " + s;
		}
	};
	d.prototype["toString"] = function() {
		var date = this;
		var m = date.getMonth() + 1;
		var d1 = date.getDate();
		var h = date.getHours();
		var mi = date.getMinutes();
		var s = date.getSeconds();
		return date.getFullYear() + "-" + (m < 10?"0" + m:"" + m) + "-" + (d1 < 10?"0" + d1:"" + d1) + " " + (h < 10?"0" + h:"" + h) + ":" + (mi < 10?"0" + mi:"" + mi) + ":" + (s < 10?"0" + s:"" + s);
	};
	d.prototype.__class__ = $hxClasses["Date"] = d;
	d.__name__ = ["Date"];
}
{
	Math.__name__ = ["Math"];
	Math.NaN = Number["NaN"];
	Math.NEGATIVE_INFINITY = Number["NEGATIVE_INFINITY"];
	Math.POSITIVE_INFINITY = Number["POSITIVE_INFINITY"];
	$hxClasses["Math"] = Math;
	Math.isFinite = function(i) {
		return isFinite(i);
	};
	Math.isNaN = function(i) {
		return isNaN(i);
	};
}
{
	Object.prototype.iterator = function() {
      var o = this.instanceKeys();
      var y = this;
      return {
        cur : 0,
        arr : o,
        hasNext: function() { return this.cur < this.arr.length; },
        next: function() { return y[this.arr[this.cur++]]; }
      };
    }
	Object.prototype.instanceKeys = function(proto) {
      var keys = [];
      proto = !proto;
      for(var i in this) {
        if(proto && Object.prototype[i]) continue;
        keys.push(i);
      }
      return keys;
    }
}
{
	String.prototype.__class__ = $hxClasses["String"] = String;
	String.__name__ = ["String"];
	Array.prototype.__class__ = $hxClasses["Array"] = Array;
	Array.__name__ = ["Array"];
	var Int = $hxClasses["Int"] = { __name__ : ["Int"]};
	var Dynamic = $hxClasses["Dynamic"] = { __name__ : ["Dynamic"]};
	var Float = $hxClasses["Float"] = Number;
	Float.__name__ = ["Float"];
	var Bool = $hxClasses["Bool"] = Boolean;
	Bool.__ename__ = ["Bool"];
	var Class = $hxClasses["Class"] = { __name__ : ["Class"]};
	var Enum = { };
	var Void = $hxClasses["Void"] = { __ename__ : ["Void"]};
}
js["XMLHttpRequest"] = window.XMLHttpRequest?XMLHttpRequest:window.ActiveXObject?function() {
	try {
		return new ActiveXObject("Msxml2.XMLHTTP");
	} catch( e ) {
		try {
			return new ActiveXObject("Microsoft.XMLHTTP");
		} catch( e1 ) {
			throw "Unable to create XMLHttpRequest object.";
		}
	}
}:(function($this) {
	var $r;
	throw "Unable to create XMLHttpRequest object.";
	return $r;
}(this));
{
	var q = window.jQuery;
	js.JQuery = q;
	q.fn.iterator = function() {
		return { pos : 0, j : this, hasNext : function() {
			return this.pos < this.j.length;
		}, next : function() {
			return $(this.j[this.pos++]);
		}};
	};
}
{
	if(typeof document != "undefined") js.Lib.document = document;
	if(typeof window != "undefined") {
		js.Lib.window = window;
		js.Lib.window.onerror = function(msg,url,line) {
			var f = js.Lib.onerror;
			if(f == null) return false;
			return f(msg,[url + ":" + line]);
		};
	}
}
UserAgent.getComputedStyle = window.getComputedStyle;
UserAgent.sessionStorage = window.sessionStorage;
UserAgent.localStorage = window.localStorage;
UserAgent.setTimeout = window.setTimeout;
UserAgent.clearTimeout = window.clearTimeout;
UserAgent.setInterval = window.setInterval;
UserAgent.clearInterval = window.clearInterval;
UserAgent.window = window.window;
UserAgent.self = window.self;
UserAgent.document = window.document;
UserAgent.location = window.location;
UserAgent.history = window.history;
UserAgent.undoManager = window.undoManager;
UserAgent.getSelection = window.getSelection;
UserAgent.locationbar = window.locationbar;
UserAgent.menubar = window.menubar;
UserAgent.personalbar = window.personalbar;
UserAgent.scrollbars = window.scrollbars;
UserAgent.statusbar = window.statusbar;
UserAgent.toolbar = window.toolbar;
UserAgent.close = window.close;
UserAgent.stop = window.stop;
UserAgent.focus = window.focus;
UserAgent.blur = window.blur;
UserAgent.frames = window.frames;
UserAgent.length = window.length;
UserAgent.top = window.top;
UserAgent.opener = window.opener;
UserAgent.parent = window.parent;
UserAgent.frameElement = window.frameElement;
UserAgent.open = window.open;
UserAgent.navigator = window.navigator;
UserAgent.applicationCache = window.applicationCache;
UserAgent.alert = window.alert;
UserAgent.confirm = window.confirm;
UserAgent.prompt = window.prompt;
UserAgent.print = window.print;
UserAgent.showModalDialog = window.showModalDialog;
UserAgent.onafterprint = null;
UserAgent.onbeforeprint = null;
UserAgent.onbeforeunload = null;
UserAgent.onblur = null;
UserAgent.onerror = null;
UserAgent.onfocus = null;
UserAgent.onhashchange = null;
UserAgent.onload = null;
UserAgent.onmessage = null;
UserAgent.onoffline = null;
UserAgent.ononline = null;
UserAgent.onpopstate = null;
UserAgent.onpagehide = null;
UserAgent.onpageshow = null;
UserAgent.onredo = null;
UserAgent.onresize = null;
UserAgent.onstorage = null;
UserAgent.onundo = null;
UserAgent.onunload = null;
UserAgent.onabort = null;
UserAgent.oncanplay = null;
UserAgent.oncanplaythrough = null;
UserAgent.onchange = null;
UserAgent.onclick = null;
UserAgent.oncontextmenu = null;
UserAgent.ondblclick = null;
UserAgent.ondrag = null;
UserAgent.ondragend = null;
UserAgent.ondragenter = null;
UserAgent.ondragleave = null;
UserAgent.ondragover = null;
UserAgent.ondragstart = null;
UserAgent.ondrop = null;
UserAgent.ondurationchange = null;
UserAgent.onemptied = null;
UserAgent.onended = null;
UserAgent.onformchange = null;
UserAgent.onforminput = null;
UserAgent.oninput = null;
UserAgent.oninvalid = null;
UserAgent.onkeydown = null;
UserAgent.onkeypress = null;
UserAgent.onkeyup = null;
UserAgent.onloadeddata = null;
UserAgent.onloadedmetadata = null;
UserAgent.onloadstart = null;
UserAgent.onmousedown = null;
UserAgent.onmousemove = null;
UserAgent.onmouseout = null;
UserAgent.onmouseover = null;
UserAgent.onmouseup = null;
UserAgent.onmousewheel = null;
UserAgent.onpause = null;
UserAgent.onplay = null;
UserAgent.onplaying = null;
UserAgent.onprogress = null;
UserAgent.onratechange = null;
UserAgent.onreadystatechange = null;
UserAgent.onscroll = null;
UserAgent.onseeked = null;
UserAgent.onseeking = null;
UserAgent.onselect = null;
UserAgent.onshow = null;
UserAgent.onstalled = null;
UserAgent.onsubmit = null;
UserAgent.onsuspend = null;
UserAgent.ontimeupdate = null;
UserAgent.onvolumechange = null;
UserAgent.onwaiting = null;
feffects.Tween._aTweens = new haxe.FastList();
feffects.Tween._aPaused = new haxe.FastList();
feffects.Tween.INTERVAL = 5;
js.Lib.onerror = null;
params.GlobalParams.RESIZE = "resize";
params.GlobalParams.ID_MAIN = "#home";
params.GlobalParams.ID_WORKS = "#works";
params.GlobalParams.ID_ABOUT = "#about";
params.GlobalParams.ID_LINKS = "#links";
params.GlobalParams.ID_CONTACT = "#contact";
params.GlobalParams.BG_MAIN = "img/bg/BG_2012.jpg";
params.GlobalParams.BG_WORKS = "img/bg/BG_WORKS_2012.jpg";
params.GlobalParams.BG_ABOUT = "img/bg/BG_MTL_about.jpg";
params.GlobalParams.BG_LINKS = "img/bg/BG_2012_links.jpg";
params.GlobalParams.BG_CONTACT = "img/bg/BG_2012_contact.jpg";
Main.main()